Model Evaluation Techniques

Machine Learning - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - ডিসিশন ট্রি এবং র্যান্ডম ফরেস্ট (Decision Tree & Random Forest)
285

মেশিন লার্নিং মডেল তৈরি করার পর, মডেলের কার্যকারিতা মূল্যায়ন করা গুরুত্বপূর্ণ, যাতে নিশ্চিত হওয়া যায় যে মডেলটি সঠিকভাবে ডেটাকে ভবিষ্যদ্বাণী বা শ্রেণীবদ্ধ করছে। বিভিন্ন model evaluation techniques ব্যবহার করে মডেলটির সঠিকতা, নির্ভরযোগ্যতা এবং কার্যকারিতা পরিমাপ করা হয়। এখানে কিছু গুরুত্বপূর্ণ মডেল মূল্যায়ন পদ্ধতি আলোচনা করা হলো:


১. Accuracy

Accuracy হল মডেলের পূর্বাভাসের সঠিকতা পরিমাপের একটি সাধারণ পদ্ধতি। এটি একটি সহজ এবং জনপ্রিয় মূল্যায়ন পদ্ধতি, তবে কিছু বিশেষ ক্ষেত্রে যেমন অসামান্য ক্লাস ইমব্যালান্সে এটি কম কার্যকরী হতে পারে।

ফর্মুলা:

Accuracy=সঠিক পূর্বাভাসমোট পূর্বাভাস\text{Accuracy} = \frac{\text{সঠিক পূর্বাভাস}}{\text{মোট পূর্বাভাস}}

উদাহরণ:

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")

Accuracy বিশেষভাবে কার্যকর যখন ডেটাসেটে প্রতিটি শ্রেণীর মধ্যে সমান সংখ্যা থাকে। তবে যখন শ্রেণীগুলির মধ্যে ভারসাম্য থাকে না, accuracy কম ফলপ্রসূ হতে পারে।


২. Confusion Matrix

Confusion Matrix একটি টেবিল যা শ্রেণীবদ্ধ মডেলের কার্যকারিতা বিশ্লেষণ করতে ব্যবহৃত হয়। এটি আসল এবং পূর্বাভাসের শ্রেণী সম্পর্কিত সঠিক এবং ভুল ফলাফল দেখায়।

মেট্রিক্সের উপাদান:

  • True Positive (TP): সঠিকভাবে পজিটিভ পূর্বাভাস।
  • True Negative (TN): সঠিকভাবে নেগেটিভ পূর্বাভাস।
  • False Positive (FP): ভুলভাবে পজিটিভ পূর্বাভাস।
  • False Negative (FN): ভুলভাবে নেগেটিভ পূর্বাভাস।

উদাহরণ:

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(cm)

Confusion Matrix থেকে বিভিন্ন মেট্রিক্স যেমন Precision, Recall, এবং F1-Score বের করা যায়।


৩. Precision, Recall, and F1-Score

এই তিনটি মেট্রিক্স প্রায়শই imbalanced datasets এ ব্যবহার করা হয়, যেখানে ক্লাসগুলির মধ্যে ভারসাম্য থাকে না।

  • Precision: এটি যাচাই করে কতটুকু পূর্বাভাস পজিটিভ সঠিক ছিল।

    Precision=TPTP+FP\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}

  • Recall (Sensitivity): এটি যাচাই করে কতটুকু সঠিক পজিটিভ ঘটনাগুলি মডেল ধরতে সক্ষম হয়েছিল।

    Recall=TPTP+FN\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}

  • F1-Score: Precision এবং Recall এর গড়ের হার, এটি একটি ভারসাম্য তৈরি করে।

    F1-Score=2×Precision×RecallPrecision+Recall\text{F1-Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}

উদাহরণ:

from sklearn.metrics import precision_score, recall_score, f1_score
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)

print(f"Precision: {precision:.2f}")
print(f"Recall: {recall:.2f}")
print(f"F1-Score: {f1:.2f}")

৪. ROC Curve and AUC (Area Under the Curve)

ROC Curve (Receiver Operating Characteristic Curve) একটি গ্রাফ যা শ্রেণীভিত্তিক মডেলের পারফরম্যান্সের উপর ভিত্তি করে থাকে, যেখানে True Positive Rate (TPR) এবং False Positive Rate (FPR) এর মধ্যে সম্পর্ক দেখানো হয়।

  • AUC (Area Under the Curve): এটি ROC কার্ভের নিচের এলাকা পরিমাপ করে, যেখানে AUC মান যত বেশি হবে, মডেলটি তত ভালো।

উদাহরণ:

from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt

fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob)
roc_auc = auc(fpr, tpr)

# ROC Curve plot
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

AUC হল একটি গুরুত্বপূর্ণ মেট্রিক, বিশেষত যখন ডেটাসেটের মধ্যে অসামান্য শ্রেণী থাকে।


৫. Cross-Validation

Cross-Validation একটি পদ্ধতি যেখানে ডেটাসেটটি একাধিক সাবসেট (folds) এ ভাগ করা হয় এবং একাধিক সময় মডেল প্রশিক্ষণ ও মূল্যায়ন করা হয়। এটি মডেলের স্থিতিশীলতা এবং সাধারণীকরণ ক্ষমতা পরীক্ষা করতে সহায়ক।

  • K-Fold Cross-Validation: ডেটাসেটকে K সংখ্যক অংশে ভাগ করা হয় এবং মডেলটি প্রতিটি অংশে প্রশিক্ষণ ও মূল্যায়ন করা হয়।

উদাহরণ:

from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5)
print(f"Cross-Validation Scores: {scores}")
print(f"Average Score: {scores.mean()}")

৬. Mean Squared Error (MSE) and Root Mean Squared Error (RMSE)

MSE এবং RMSE রিগ্রেশন মডেলের কার্যকারিতা মূল্যায়ন করার জন্য ব্যবহৃত হয়। তারা পূর্বাভাসের এবং আসল মানের মধ্যে গড় বিচ্যুতি পরিমাপ করে।

  • MSE: MSE=1ni=1n(yiyi^)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y_i})^2
  • RMSE: এটি MSE এর বর্গমূল। RMSE=MSE\text{RMSE} = \sqrt{\text{MSE}}

উদাহরণ:

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
print(f'Mean Squared Error (MSE): {mse}')
print(f'Root Mean Squared Error (RMSE): {rmse}')

সারাংশ

মডেল মূল্যায়ন অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি নিশ্চিত করে যে মডেলটি সঠিকভাবে ডেটা শিখছে এবং নতুন ডেটাতে সঠিক ফলাফল দিতে সক্ষম। বিভিন্ন মূল্যায়ন মেট্রিক যেমন Accuracy, Precision, Recall, F1-Score, ROC-AUC, Cross-Validation ইত্যাদি ব্যবহার করে মডেলের কার্যকারিতা পরিমাপ করা যায়। প্রতি মেট্রিকের ব্যবহার নির্ভর করে সমস্যার প্রকার এবং ডেটার বৈশিষ্ট্যের উপর।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...